package com.example.ddz.framework;

/**
 * Created by IntelliJ IDEA.
 * User: Marcel Melzig
 * Date: 31.05.11
 * Time: 09:45
 */


/**
 * @author Marcel Melzig
 * @version 0.0.1
 */
public interface IGame
{
    /**
     * Gets the input function for the game which encapsulates the operation systems methods.
     *
     * @return An input object.
     */
    public IInput GetInput();

    /**
     * Gets the file IO methods for the game.
     *
     * @return The file IO methods.
     */
    public IFileIO GetFileIo();

    /**
     * Gets an instance of the IGraphics interface which encapsulates all methods needed to render the games graphics.
     *
     * @return An instance of the IGraphics interface.
     */
    public IGraphics GetGraphics();

    /**
     * Gets an instance which encapsulates all the audio functions for the game.
     *
     * @return An instance of the audio class.
     */
    public IAudio GetAudio();

    /**
     * Sets the screen.
     *
     * @param screen The screen which should be displayed.
     */
    public void SetScreen(Screen screen);

    /**
     * Gets the current screen.
     *
     * @return The current screen.
     */
    public Screen GetCurrentScreen();

    /**
     * Gets the start screen of the game.
     *
     * @return The start screen of the game.
     */
    public Screen GetStartScreen();
}
